home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / OWLINC.PAK / SIGNATUR.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  14KB  |  592 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1992, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   10.7  $
  6. //
  7. // Message handler signature templates
  8. //----------------------------------------------------------------------------
  9. #if !defined(OWL_SIGNATUR_H)
  10. #define OWL_SIGNATUR_H
  11.  
  12. #if !defined(OWL_DEFS_H)
  13. # include <owl/defs.h>
  14. #endif
  15.  
  16. #if defined(BI_NAMESPACE)
  17. namespace OWL {
  18. #endif
  19.  
  20. class _OWLCLASS TCommandEnabler;
  21. class _OWLCLASS TDocument;
  22. class _OWLCLASS TView;
  23. //class TDropInfo;
  24. //class TPoint;
  25. //class TSize;
  26.  
  27. //----------------------------------------------------------------------------
  28. //  LEGEND: in order to keep signature names from getting too long, the
  29. //          following abbreviations are used for the data types passed to and
  30. //          returned from the methods. The first code is the return type, the
  31. //          rest are args in left to right order.
  32. //
  33. //  - v   (void return)
  34. //  - i,I (int)
  35. //  - I32 (int32)
  36. //  - U   (uint)
  37. //  - B   (bool)
  38. //  - H   (HANDLE)
  39. //  - W   (HWND)
  40. //  - S   (char far*)
  41. //  - CS  (const char far*)
  42. //  - other types spelled out
  43. //
  44.  
  45. //----------------------------------------------------------------------------
  46.  
  47. template <class T>
  48. inline bool _CALLCNVN (T::*B_Sig(bool _CALLCNVN (T::*pmf)()))()
  49. {
  50.   return pmf;
  51. }
  52.  
  53. template <class T>
  54. inline bool _CALLCNVN (T::*B_B_Sig(bool _CALLCNVN (T::*pmf)(bool)))(bool)
  55. {
  56.   return pmf;
  57. }
  58.  
  59. template <class T>
  60. inline bool _CALLCNVN (T::*B_I_Sig(bool _CALLCNVN (T::*pmf)(int)))(int)
  61. {
  62.   return pmf;
  63. }
  64.  
  65. template <class T>
  66. inline bool _CALLCNVN (T::*B_CREATE_Sig(bool _CALLCNVN (T::*pmf)(CREATESTRUCT far&)))(CREATESTRUCT far&)
  67. {
  68.   return pmf;
  69. }
  70.  
  71. template <class T>
  72. inline bool _CALLCNVN (T::*B_CS_Sig(bool _CALLCNVN (T::*pmf)(const char far*)))(const char far*)
  73. {
  74.   return pmf;
  75. }
  76.  
  77. template <class T>
  78. inline bool _CALLCNVN (T::*B_MSG_Sig(bool _CALLCNVN (T::*pmf)(MSG far*)))(MSG far*)
  79. {
  80.   return pmf;
  81. }
  82.  
  83. template <class T>
  84. inline bool _CALLCNVN (T::*B_RECT_Sig(bool _CALLCNVN (T::*pmf)(TRect far*)))(TRect far*)
  85. {
  86.   return pmf;
  87. }
  88.  
  89. template <class T>
  90. inline bool _CALLCNVN (T::*B_U_RECT_Sig(bool _CALLCNVN (T::*pmf)(uint,TRect&)))(uint,TRect&)
  91. {
  92.   return pmf;
  93. }
  94.  
  95. template <class T>
  96. inline bool _CALLCNVN (T::*B_U_U_Sig(bool _CALLCNVN (T::*pmf)(uint,uint)))(uint,uint)
  97. {
  98.   return pmf;
  99. }
  100.  
  101. template <class T>
  102. inline bool _CALLCNVN (T::*B_W_U_U_Sig(bool _CALLCNVN (T::*pmf)(HWND, uint, uint)))(HWND, uint, uint)
  103. {
  104.   return pmf;
  105. }
  106.  
  107. template <class T>
  108. inline bool _CALLCNVN (T::*B_HDC_Sig(bool _CALLCNVN (T::*pmf)(HDC)))(HDC)
  109. {
  110.   return pmf;
  111. }
  112.  
  113. #if defined(BI_PLAT_WIN32)
  114. template <class T>
  115. inline bool _CALLCNVN (T::*B_B_HKL_Sig(bool _CALLCNVN (T::*pmf)(bool, HKL)))(bool, HKL)
  116. {
  117.   return pmf;
  118. }
  119.  
  120. template <class T>
  121. inline bool _CALLCNVN (T::*B_I_HKL_Sig(bool _CALLCNVN (T::*pmf)(int, HKL)))(int, HKL)
  122. {
  123.   return pmf;
  124. }
  125.  
  126. template <class T>
  127. inline void _CALLCNVN (T::*v_HELPINFO_Sig(void _CALLCNVN (T::*pmf)(HELPINFO&)))(HELPINFO&)
  128. {
  129.   return pmf;
  130. }
  131.  
  132. #endif  // defined(BI_PLAT_WIN32)
  133.  
  134. template <class T>
  135. inline void _CALLCNVN (T::*v_HRGN_Sig(void _CALLCNVN (T::*pmf)(HRGN)))(HRGN)
  136. {
  137.   return pmf;
  138. }
  139.  
  140. template <class T>
  141. inline void _CALLCNVN (T::*v_B_I_I_Sig(void _CALLCNVN (T::*pmf)(bool, int, int)))(bool, int, int)
  142. {
  143.   return pmf;
  144. }
  145.  
  146. template <class T>
  147. inline bool _CALLCNVN (T::*B_I32_Sig(bool _CALLCNVN (T::*pmf)(int32)))(int32)
  148. {
  149.   return pmf;
  150. }
  151.  
  152. template <class T>
  153. inline bool _CALLCNVN (T::*B_PPALETTE_Sig(bool _CALLCNVN (T::*pmf)(LOGPALETTE far* far*)))(LOGPALETTE far* far*)
  154. {
  155.   return pmf;
  156. }
  157.  
  158. //----------------------------------------------------------------------------
  159.  
  160. template <class T>
  161. inline const char far* _CALLCNVN (T::*CS_Sig(const char far* _CALLCNVN (T::*pmf)()))()
  162. {
  163.   return pmf;
  164. }
  165.  
  166. //----------------------------------------------------------------------------
  167.  
  168. template <class T>
  169. inline HANDLE _CALLCNVN (T::*H_Sig(HANDLE _CALLCNVN (T::*pmf)()))()
  170. {
  171.   return pmf;
  172. }
  173.  
  174. //----------------------------------------------------------------------------
  175.  
  176. template <class T>
  177. inline HBRUSH _CALLCNVN (T::*HBRUSH_HDC_W_U_Sig(HBRUSH _CALLCNVN (T::*pmf)(HDC, HWND, uint)))(HDC, HWND, uint)
  178. {
  179.   return pmf;
  180. }
  181.  
  182. //----------------------------------------------------------------------------
  183.  
  184. template <class T>
  185. inline HFONT _CALLCNVN (T::*HFONT_Sig(HFONT _CALLCNVN (T::*pmf)()))()
  186. {
  187.   return pmf;
  188. }
  189.  
  190. //----------------------------------------------------------------------------
  191.  
  192. template <class T>
  193. inline HICON _CALLCNVN (T::*HICON_B_Sig(HICON _CALLCNVN (T::*pmf)(bool)))(bool)
  194. {
  195.   return pmf;
  196. }
  197.  
  198. template <class T>
  199. inline HICON _CALLCNVN (T::*HICON_B_HICON_Sig(HICON _CALLCNVN (T::*pmf)(bool, HICON)))(bool, HICON)
  200. {
  201.   return pmf;
  202. }
  203.  
  204. //----------------------------------------------------------------------------
  205.  
  206. template <class T>
  207. inline int _CALLCNVN (T::*i_CREATE_Sig(int _CALLCNVN (T::*pmf)(CREATESTRUCT far&)))(CREATESTRUCT far&)
  208. {
  209.   return pmf;
  210. }
  211.  
  212. template <class T>
  213. inline int _CALLCNVN (T::*i_U_Sig(int _CALLCNVN (T::*pmf)(uint)))(uint)
  214. {
  215.   return pmf;
  216. }
  217.  
  218. template <class T>
  219. inline int _CALLCNVN (T::*i_U_W_U_Sig(int _CALLCNVN (T::*pmf)(uint, HWND, uint)))(uint, HWND, uint)
  220. {
  221.   return pmf;
  222. }
  223.  
  224. //----------------------------------------------------------------------------
  225.  
  226. template <class T>
  227. inline int32 _CALLCNVN (T::*I32_MDICREATESTRUCT_Sig(int32 _CALLCNVN (T::*pmf)(MDICREATESTRUCT far&)))
  228.                                         (MDICREATESTRUCT far&)
  229. {
  230.   return pmf;
  231. }
  232.  
  233. template <class T>
  234. inline int32 _CALLCNVN (T::*I32_U_COMPAREITEM_Sig(int32 _CALLCNVN (T::*pmf)(uint, COMPAREITEMSTRUCT far&)))
  235.                                       (uint, COMPAREITEMSTRUCT far&)
  236. {
  237.   return pmf;
  238. }
  239.  
  240. template <class T>
  241. inline int32 _CALLCNVN (T::*I32_U_I32_Sig(int32 _CALLCNVN (T::*pmf)(uint, int32)))(uint, int32)
  242. {
  243.   return pmf;
  244. }
  245.  
  246. template <class T>
  247. inline int32 _CALLCNVN (T::*I32_U_U_HMENU_Sig(int32 _CALLCNVN (T::*pmf)(uint, uint, HMENU)))(uint, uint, HMENU)
  248. {
  249.   return pmf;
  250. }
  251.  
  252. //----------------------------------------------------------------------------
  253.  
  254. template <class T>
  255. inline uint32 _CALLCNVN (T::*U32_VOIDFP_Sig(uint32 _CALLCNVN (T::*pmf)(void far*)))(void far*)
  256. {
  257.   return pmf;
  258. }
  259.  
  260. template <class T>
  261. inline uint32 _CALLCNVN (T::*U32_Sig(uint32 _CALLCNVN (T::*pmf)()))()
  262. {
  263.   return pmf;
  264. }
  265.  
  266. //----------------------------------------------------------------------------
  267.  
  268. template <class T>
  269. inline uint _CALLCNVN (T::*U_Sig(uint _CALLCNVN (T::*pmf)()))()
  270. {
  271.   return pmf;
  272. }
  273.  
  274. template <class T>
  275. inline uint _CALLCNVN (T::*U_B_CALCSIZE_Sig(uint _CALLCNVN (T::*pmf)(bool, NCCALCSIZE_PARAMS far&)))
  276.                                 (bool, NCCALCSIZE_PARAMS far&)
  277. {
  278.   return pmf;
  279. }
  280.  
  281. template <class T>
  282. inline uint _CALLCNVN (T::*U_MSG_Sig(uint _CALLCNVN (T::*pmf)(MSG far*)))(MSG far*)
  283. {
  284.   return pmf;
  285. }
  286.  
  287. template <class T>
  288. inline uint _CALLCNVN (T::*U_POINT_Sig(uint _CALLCNVN (T::*pmf)(TPoint&)))(TPoint&)
  289. {
  290.   return pmf;
  291. }
  292.  
  293. template <class T>
  294. inline uint _CALLCNVN (T::*U_W_U_U_Sig(uint _CALLCNVN (T::*pmf)(HWND, uint, uint)))(HWND, uint, uint)
  295. {
  296.   return pmf;
  297. }
  298.  
  299. //----------------------------------------------------------------------------
  300.  
  301. template <class T>
  302. inline void _CALLCNVN (T::*v_Sig(void _CALLCNVN (T::*pmf)()))()
  303. {
  304.   return pmf;
  305. }
  306.  
  307. template <class T>
  308. inline void _CALLCNVN (T::*v_B_Sig(void _CALLCNVN (T::*pmf)(bool)))(bool)
  309. {
  310.   return pmf;
  311. }
  312.  
  313. template <class T>
  314. inline void _CALLCNVN (T::*v_B_B_Sig(void _CALLCNVN (T::*pmf)(bool, bool)))(bool, bool)
  315. {
  316.   return pmf;
  317. }
  318.  
  319. template <class T>
  320. inline void _CALLCNVN (T::*v_B_HTASK_Sig(void _CALLCNVN (T::*pmf)(bool, HTASK)))(bool, HTASK)
  321. {
  322.   return pmf;
  323. }
  324.  
  325. template <class T>
  326. inline void _CALLCNVN (T::*v_B_U_Sig(void _CALLCNVN (T::*pmf)(bool, uint)))(bool, uint)
  327. {
  328.   return pmf;
  329. }
  330.  
  331. template <class T>
  332. inline void _CALLCNVN (T::*v_B_W_W_Sig(void _CALLCNVN (T::*pmf)(bool, HWND, HWND)))(bool, HWND, HWND)
  333. {
  334.   return pmf;
  335. }
  336.  
  337. template <class T>
  338. inline void _CALLCNVN (T::*v_COMMANDENABLER_Sig(void _CALLCNVN (T::*pmf)(TCommandEnabler&)))(TCommandEnabler&)
  339. {
  340.   return pmf;
  341. }
  342.  
  343. template <class T>
  344. inline void _CALLCNVN (T::*v_CS_Sig(void _CALLCNVN (T::*pmf)(const char far*)))(const char far*)
  345. {
  346.   return pmf;
  347. }
  348.  
  349. template <class T>
  350. inline void _CALLCNVN (T::*v_DROP_Sig(void _CALLCNVN (T::*pmf)(TDropInfo)))(TDropInfo)
  351. {
  352.   return pmf;
  353. }
  354.  
  355. template <class T>
  356. inline void _CALLCNVN (T::*v_H_Sig(void _CALLCNVN (T::*pmf)(HANDLE)))(HANDLE)
  357. {
  358.   return pmf;
  359. }
  360.  
  361. template <class T>
  362. inline void _CALLCNVN (T::*v_H_B_Sig(void _CALLCNVN (T::*pmf)(HANDLE, bool)))(HANDLE, bool)
  363. {
  364.   return pmf;
  365. }
  366.  
  367. template <class T>
  368. inline void _CALLCNVN (T::*v_HDC_Sig(void _CALLCNVN (T::*pmf)(HDC)))(HDC)
  369. {
  370.   return pmf;
  371. }
  372.  
  373. template <class T>
  374. inline void _CALLCNVN (T::*v_HDC_U_Sig(void _CALLCNVN (T::*pmf)(HDC,uint)))(HDC,uint)
  375. {
  376.   return pmf;
  377. }
  378.  
  379. #if defined(BI_PLAT_WIN32)
  380. template <class T>
  381. inline void _CALLCNVN (T::*v_HELPINFO_Sig(void _CALLCNVN (T::*pmf)(HELPINFO far*)))(HELPINFO far*)
  382. {
  383.   return pmf;
  384. }
  385.  
  386. template <class T>
  387. inline void _CALLCNVN (T::*v_HWND_PCOPYDATASTRUCT_Sig(void _CALLCNVN (T::*pmf)(HWND,COPYDATASTRUCT*)))(HWND,COPYDATASTRUCT*)
  388. {
  389.   return pmf;
  390. }
  391. #endif
  392.  
  393. template <class T>
  394. inline void _CALLCNVN (T::*v_HFONT_B_Sig(void _CALLCNVN (T::*pmf)(HFONT, bool)))(HFONT, bool)
  395. {
  396.   return pmf;
  397. }
  398.  
  399. template <class T>
  400. inline void _CALLCNVN (T::*v_HMENU_Sig(void _CALLCNVN (T::*pmf)(HMENU)))(HMENU)
  401. {
  402.   return pmf;
  403. }
  404.  
  405. template <class T>
  406. inline void _CALLCNVN (T::*v_HMENU_U_B_Sig(void _CALLCNVN (T::*pmf)(HMENU, uint, bool)))(HMENU, uint, bool)
  407. {
  408.   return pmf;
  409. }
  410.  
  411. template <class T>
  412. inline void _CALLCNVN (T::*v_i_Sig(void _CALLCNVN (T::*pmf)(int)))(int)
  413. {
  414.   return pmf;
  415. }
  416.  
  417. template <class T>
  418. inline void _CALLCNVN (T::*v_MINMAXINFO_Sig(void _CALLCNVN (T::*pmf)(MINMAXINFO far&)))(MINMAXINFO far&)
  419. {
  420.   return pmf;
  421. }
  422.  
  423. template <class T>
  424. inline void _CALLCNVN (T::*v_OWLDOCUMENT_Sig(void _CALLCNVN (T::*pmf)(TDocument&)))(TDocument&)
  425. {
  426.   return pmf;
  427. }
  428.  
  429. template <class T>
  430. inline void _CALLCNVN (T::*v_OWLVIEW_Sig(void _CALLCNVN (T::*pmf)(TView&)))(TView&)
  431. {
  432.   return pmf;
  433. }
  434.  
  435. template <class T>
  436. inline void _CALLCNVN (T::*v_POINT_Sig(void _CALLCNVN (T::*pmf)(TPoint&)))(TPoint&)
  437. {
  438.   return pmf;
  439. }
  440.  
  441. template <class T>
  442. inline void _CALLCNVN (T::*v_S_Sig(void _CALLCNVN (T::*pmf)(char far*)))(char far*)
  443. {
  444.   return pmf;
  445. }
  446.  
  447. template <class T>
  448. inline void _CALLCNVN (T::*v_U_Sig(void _CALLCNVN (T::*pmf)(uint)))(uint)
  449. {
  450.   return pmf;
  451. }
  452.  
  453. template <class T>
  454. inline void _CALLCNVN (T::*v_U_B_W_Sig(void _CALLCNVN (T::*pmf)(uint, bool, HWND)))(uint, bool, HWND)
  455. {
  456.   return pmf;
  457. }
  458.  
  459. template <class T>
  460. inline void _CALLCNVN (T::*v_U_CS_Sig(void _CALLCNVN (T::*pmf)(uint, const char far*)))(uint, const char far*)
  461. {
  462.   return pmf;
  463. }
  464.  
  465. template <class T>
  466. inline void _CALLCNVN (T::*v_U_DELETEITEM_Sig(void _CALLCNVN (T::*pmf)(uint, DELETEITEMSTRUCT far&)))
  467.                                       (uint, DELETEITEMSTRUCT far&)
  468. {
  469.   return pmf;
  470. }
  471.  
  472. template <class T>
  473. inline void _CALLCNVN (T::*v_U_DRAWITEM_Sig(void _CALLCNVN (T::*pmf)(uint, DRAWITEMSTRUCT far&)))
  474.                                       (uint, DRAWITEMSTRUCT far&)
  475. {
  476.   return pmf;
  477. }
  478.  
  479. template <class T>
  480. inline void _CALLCNVN (T::*v_U_MEASUREITEM_Sig(void _CALLCNVN (T::*pmf)(uint, MEASUREITEMSTRUCT far&)))
  481.                                       (uint, MEASUREITEMSTRUCT far&)
  482. {
  483.   return pmf;
  484. }
  485.  
  486. template <class T>
  487. inline void _CALLCNVN (T::*v_U_POINT_Sig(void _CALLCNVN (T::*pmf)(uint, TPoint&)))(uint, TPoint&)
  488. {
  489.   return pmf;
  490. }
  491.  
  492. template <class T>
  493. inline void _CALLCNVN (T::*v_U_S_Sig(void _CALLCNVN (T::*pmf)(uint, char far*)))(uint, char far*)
  494. {
  495.   return pmf;
  496. }
  497.  
  498. template <class T>
  499. inline void _CALLCNVN (T::*v_U_SIZE_Sig(void _CALLCNVN (T::*pmf)(uint, TSize&)))(uint, TSize&)
  500. {
  501.   return pmf;
  502. }
  503.  
  504. #if defined(BI_PLAT_WIN32)
  505. template <class T>
  506. inline void _CALLCNVN (T::*v_U_STYLE_Sig(void _CALLCNVN (T::*pmf)(uint, STYLESTRUCT far*)))(uint, STYLESTRUCT far*)
  507. {
  508.   return pmf;
  509. }
  510. #endif
  511.  
  512. template <class T>
  513. inline void _CALLCNVN (T::*v_U_U_Sig(void _CALLCNVN (T::*pmf)(uint, uint)))(uint, uint)
  514. {
  515.   return pmf;
  516. }
  517.  
  518. template <class T>
  519. inline void _CALLCNVN (T::*v_U_U_HMENU_Sig(void _CALLCNVN (T::*pmf)(uint, uint, HMENU)))(uint, uint, HMENU)
  520. {
  521.   return pmf;
  522. }
  523.  
  524. template <class T>
  525. inline void _CALLCNVN (T::*v_U_U_U_Sig(void _CALLCNVN (T::*pmf)(uint, uint, uint)))(uint, uint, uint)
  526. {
  527.   return pmf;
  528. }
  529.  
  530. template <class T>
  531. inline void _CALLCNVN (T::*v_U_U_W_Sig(void _CALLCNVN (T::*pmf)(uint, uint, HWND)))(uint, uint, HWND)
  532. {
  533.   return pmf;
  534. }
  535.  
  536. template <class T>
  537. inline void _CALLCNVN (T::*v_U_W_Sig(void _CALLCNVN (T::*pmf)(uint, HWND)))(uint, HWND)
  538. {
  539.   return pmf;
  540. }
  541.  
  542. template <class T>
  543. inline void _CALLCNVN (T::*v_W_Sig(void _CALLCNVN (T::*pmf)(HWND)))(HWND)
  544. {
  545.   return pmf;
  546. }
  547.  
  548. template <class T>
  549. inline void _CALLCNVN (T::*v_W_H_Sig(void _CALLCNVN (T::*pmf)(HWND, HANDLE)))(HWND, HANDLE)
  550. {
  551.   return pmf;
  552. }
  553.  
  554. template <class T>
  555. inline void _CALLCNVN (T::*v_W_I_I_Sig(void _CALLCNVN (T::*pmf)(HWND, int, int)))(HWND, int, int)
  556. {
  557.   return pmf;
  558. }
  559.  
  560. template <class T>
  561. inline void _CALLCNVN (T::*v_W_U_U_Sig(void _CALLCNVN (T::*pmf)(HWND, uint, uint)))(HWND, uint, uint)
  562. {
  563.   return pmf;
  564. }
  565.  
  566. template <class T>
  567. inline void _CALLCNVN (T::*v_W_W_Sig(void _CALLCNVN (T::*pmf)(HWND, HWND)))(HWND, HWND)
  568. {
  569.   return pmf;
  570. }
  571.  
  572. template <class T>
  573. inline void _CALLCNVN (T::*v_WINDOWPOS_Sig(void _CALLCNVN (T::*pmf)(WINDOWPOS far&)))(WINDOWPOS far&)
  574. {
  575.   return pmf;
  576. }
  577.  
  578. #if defined(BI_NAMESPACE)
  579. } // namespace OWL
  580. #endif
  581.  
  582. //
  583. // Aliases for compatibility
  584. //
  585. #define LRESULT_WPARAM_LPARAM_Sig   I32_U_I32_Sig
  586. #define B_LPARAM_Sig                B_I32_Sig
  587. #define LRESULT_U_U_HMENU_Sig       I32_U_U_HMENU_Sig
  588. #define LRESULT_U_COMPAREITEM_Sig   I32_U_COMPAREITEM_Sig
  589. #define LRESULT_MDICREATESTRUCT_Sig I32_MDICREATESTRUCT_Sig
  590.  
  591. #endif  // OWL_SIGNATUR_H
  592.